iT邦幫忙

2022 iThome 鐵人賽

DAY 1
0
自我挑戰組

RISCV 作業系統與處理器 淺談系列 第 1

Day1 為什麼寫這文章?寫什麼?

  • 分享至 

  • xImage
  •  

寫作原因

你在打電腦時,是否想過,為什麼你按一個鍵,螢幕上就會跑出東西來?
又或者你剛剛學過程式語言,是否曾疑問過,為什麼照各個語言規則打幾行程式碼,就能跑出加減乘除,甚至還能印在終端機上?
還是你懂了一些數位電路設計,懂了一些cpu原理與構造,甚至用verilog刻了一個極簡cpu(pipeline程度,甚至還沒有中斷服務?),然後開始思考,電腦的cpu真的是這世界的產物嗎?怎麼能做到讓那麼多程式跑來跑去還不打結,查了一下後,發覺作業系統也不像這世界產物。這時,也許你會如我頓悟,也許疑惑的源頭,我,才是問題根源/images/emoticon/emoticon04.gif
為了讓自己不再心煩意亂,我決定從根源解決問題!為此,決定展開這30天的旅程!

大綱

在真正開始吃主餐前(作業系統,cpu的深入理解),我們需要先大概略覽一些小知識做預備!

  • c語言的小技巧(這裡一定要超大力推薦看jserv老師的影片集你所不知道的 C 語言,但剛看時可能會像我不到十分鐘就開始打盹,有此現象恭喜你,這一定是你需要的內容!一定要撐下去學習!看看老師仔細的筆記也很好!一定受益良多)
  • cpu 基本知識(包含ISA, pipeline, hazards)
  • 編譯器的概念介紹(從最基本什麼是編譯器,到後面他是如何將一大堆程式碼轉換成cpu看得懂的0011,包括elf, linker, loader這些神奇的東西)
  • 一些在學習中你常常會看到的工具及檔案,如Makefile, git, gcc, verilog, qemu

接下來我們就可以來一起初步學習真實世界本來面貌了!包括bootloader,process,memory management,exception,interrupt,system call...

其間我們可能會接觸主要以下神作:

  • rv32emu : 由黃敬群老師為主製作的riscv模擬器
  • xv6-riscv : MIT 為了教學而製作的作業系統
  • mini-riscv-os: 由陳鍾誠老師為主製作的作業系統(附中文教程)

結語

世界曾經於我就像個黑盒子,迷迷糊糊的學習怎麼用電腦,怎麼用應用程式,學習一個又一個程式語言,直至覺得真的受不了,想睜大眼仔細看看這個盒子裡到底藏著什麼東西,我到底是跟什麼東西天天為伍。
學習的過程,真有種重新活過來的感覺,然後發覺原來世界上有這麼多熱心厲害且無私的人,將這些魔法帶到這世界,覺得十分感動與幸福,原來這句"世界不是缺少美,而是缺少發現"不是為了讓作文高分而存在的。
雖然不知道自己能走得多遠,但能確定的是,對我來說,每步都是珍貴而美麗的足跡~


下一篇
在作業系統實作中會用到的c語言 Part1
系列文
RISCV 作業系統與處理器 淺談4
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言